﻿/**
 * @file PyFITKAcousticsAbsodel.h
 * @brief  为python装饰器接口准备的封装类
 * @author wangning (2185896382@qq.com)
 * @date 2024-12-03
 */
#ifndef __PY_FITKACOUSTICS_ABSTRACT_MODEL_H___
#define __PY_FITKACOUSTICS_ABSTRACT_MODEL_H___

#include "FITKAcousticsModelAPI.h"

namespace Core
{
    class FITKAbstractDataManagerPrivate;
}

namespace Acoustics
{

    /**
     * @brief  为python装饰器接口准备的封装类
     * @author wangning (2185896382@qq.com)
     * @date 2024-12-03
     */
    class  FITKAcousticsModelAPI PyFITKAcousticsAbsodel
    {
    public:
        explicit PyFITKAcousticsAbsodel() = default;
        virtual ~PyFITKAcousticsAbsodel() = 0;

        void setMaterialManager(Core::FITKAbstractDataManagerPrivate* mgr);

        void setPropertyManager(Core::FITKAbstractDataManagerPrivate* mgr);
        
        void setSpectraMgr(Core::FITKAbstractDataManagerPrivate* mgr);

        void setNCTMgr(Core::FITKAbstractDataManagerPrivate* mgr);


    protected:

        //声学介质材料管理器
        Core::FITKAbstractDataManagerPrivate* _materialMgr{};

        //物理属性材料管理器
        Core::FITKAbstractDataManagerPrivate* _propMgr{};

        //阻尼频谱管理器（模态密度）
        Core::FITKAbstractDataManagerPrivate* _spectraMgr{};

        //声学包管理器
        Core::FITKAbstractDataManagerPrivate* _nctMgr{};

    };
}


#endif
